home *** CD-ROM | disk | FTP | other *** search
/ Software Vault: The Diamond Collection / The Diamond Collection (Software Vault)(Digital Impact).ISO / cdr37 / cw_fm_18.zip / FILEMENU.PPE (.txt) < prev    next >
PCBoard Programming Language Executable  |  1995-03-18  |  10KB  |  425 lines

  1. ;------------------------------------------------------------------------------
  2. ;                                                   .ss.
  3. ;                                                   `²²'
  4. ;             .,sS$Ss,,s$  .,sS$$$Ss.  .,sS$Ss,,s$ .ss.  .sSs.
  5. ;           .d$$²^°²$$$$'.d$P²°^^²$P'.d$$²^°²$$$$'.$$$' .$$$²Sb,.
  6. ;           $$$'   .$$$' $$$²Sçsµ²' .$$$'   .$$$'.$$$' .$$$'  `$$b.
  7. ;           $$$b,,d$$$' ,$$$b,....,s$$$$b,,d$$$'.$$$;.,$$$'    ;$$$
  8. ;           `²S$$S²²S$$S²°²S$$$$S²°°²S$$$$$$',$$S²°²S$S'.sS$$$P²'
  9. ;                                    .sS²°$$$²²°"'       d²°'
  10. ;                                  .$$²  .$$'
  11. ;                                  $$$.,d$$'
  12. ;                                  `²S$$S²'
  13. ;------------------------------------------------------------------------------
  14. ; P.P.L.X. 2.OO                          (C)1996 - Lone Runner / AEGiS CoRP'96 
  15. ;------------------------------------------------------------------------------
  16. ; PPE 2.OO (plain) - Analysis ON - Postprocessing ON
  17. ;------------------------------------------------------------------------------
  18.  
  19.     Integer  INTEGER001
  20.     Integer  INTEGER002
  21.     Integer  INTEGER003
  22.     Integer  INTEGER004
  23.     Integer  INTEGER005
  24.     Integer  INTEGER006
  25.     Integer  INTEGER007
  26.     Integer  INTEGER008
  27.     Integer  INTEGER009
  28.     Integer  INTEGER010
  29.     Integer  INTEGER011
  30.     Integer  INTEGER012
  31.     Integer  INTEGER013
  32.     Integer  INTEGER014
  33.     Integer  INTEGER015
  34.     String   STRING001
  35.     String   STRING002
  36.     String   STRING003
  37.     String   STRING004
  38.     String   STRING005
  39.     String   STRING006
  40.     String   STRING007
  41.     String   STRING008
  42.     String   STRING009
  43.     String   STRING010
  44.     String   STRING011
  45.     String   STRING012
  46.     String   STRING013
  47.     String   STRING014
  48.     String   STRING015
  49.     String   STRING016
  50.     String   STRING017
  51.     String   STRING018
  52.     String   STRING019
  53.     String   STRING020
  54.     String   STRING021
  55.     String   STRING022
  56.     String   STRING023
  57.     String   STRING024
  58.     String   STRING025
  59.     String   STRING026
  60.     String   STRING027
  61.     String   STRING028
  62.     String   STRING029
  63.  
  64. ;------------------------------------------------------------------------------
  65.  
  66.     STRING002 = TokenStr()
  67.     If (Strip(STRING002, Chr(32)) == "") Goto LABEL001
  68.     KbdStuff "F " + STRING002 + Chr(13)
  69.     End
  70.     :LABEL001
  71.     INTEGER010 = 36
  72.     STRING019 = PPEPath() + PPEName() + ".CNF"
  73.     STRING027 = 58053
  74.     STRING025 = "N"
  75.     STRING028 = "U" + "n" + "r" + "e" + "g" + "i" + "s" + "t" + "e" + "r" + "e" + "d"
  76.     If (PPEName() == "SUBSCRIP") STRING026 = 46554
  77.     If (PPEName() == "FONE-VER") STRING026 = 34479
  78.     If (PPEName() == "PRO-VOTE") STRING026 = 57877
  79.     If (PPEName() == "CONFMENU") STRING026 = 27062
  80.     If (PPEName() == "FILEMENU") STRING026 = 14513
  81.     If (PPEName() == "MAINMENU") STRING026 = 25781
  82.     If (PPEName() == "DOORMENU") STRING026 = 44910
  83.     If (PPEName() == "AUTOPOST") STRING026 = 61482
  84.     If (PPEName() == "BBSLISTR") STRING026 = 11832
  85.     If (PPEName() == "REMINDME") STRING026 = 54925
  86.     If (PPEName() == "TIMEZONE") STRING026 = 38318
  87.     If (PPEName() == "USERNEWS") STRING026 = 31171
  88.     If (PPEName() == "MSGQUEST") STRING026 = 50024
  89.     If (PPEName() == "BIRTHDAY") STRING026 = 19645
  90.     If (PPEName() == "HOWHEARD") STRING026 = 42868
  91.     If (PPEName() == "WELCOMAT") STRING026 = 23034
  92.     If (PPEName() == "PAGE-ME!") STRING026 = 35782
  93.     If (Exist(STRING019)) Then
  94.         FOpen 1, STRING019, 0, 0
  95.         FGet 1, STRING014
  96.         FGet 1, INTEGER013
  97.         FGet 1, INTEGER012
  98.         FClose 1
  99.     Else
  100.         Select Case (PPEName())
  101.             Case "MAINT"
  102.                 STRING019 = PPEPath() + "PRO-VOTE.CNF"
  103.             Case "CMW"
  104.                 STRING019 = PPEPath() + "CONFMENU.CNF"
  105.             Case "INTELAPP"
  106.                 STRING019 = PPEPath() + "INTELEC.CNF"
  107.             Case Else
  108.                 PrintLn "@X0CError - Config file not found - Please notify SysOp"
  109.                 End
  110.             Endif
  111.     End Select
  112.     STRING029 = "N"
  113.     If (INTEGER012 == 101180) STRING029 = "Y"
  114.     If (INTEGER012 == 101639) STRING029 = "Y"
  115.     If (STRING029 == "Y") Then
  116.         STRING001 = ReadLine(PCBDat(), 31)
  117.         Delete STRING001
  118.         STRING001 = ReadLine(PCBDat(), 32)
  119.         Delete STRING001
  120.         STRING001 = ReadLine(PCBDat(), 33)
  121.         Delete STRING001
  122.         STRING001 = ReadLine(PCBDat(), 34)
  123.         Delete STRING001
  124.         STRING001 = ReadLine(PCBDat(), 35)
  125.         Delete STRING001
  126.         STRING001 = ReadLine(PCBDat(), 45)
  127.         Delete STRING001
  128.         STRING001 = ReadLine(PCBDat(), 180)
  129.         Delete STRING001
  130.         STRING001 = ReadLine(PCBDat(), 200)
  131.         Delete STRING001
  132.         STRING001 = ReadLine(PCBDat(), 230)
  133.         Delete STRING001
  134.         STRING001 = ReadLine(PCBDat(), 232)
  135.         Delete STRING001
  136.         STRING001 = ReadLine(PCBDat(), 244)
  137.         Delete STRING001
  138.         STRING001 = PCBDat()
  139.         Delete STRING001
  140.         Bye
  141.     Endif
  142.     Tokenize STRING014
  143.     GetToken STRING023
  144.     GetToken STRING024
  145.     If (INTEGER013 == 0) Then
  146.         STRING025 = "N"
  147.         Goto LABEL004
  148.     Else
  149.         Goto LABEL002
  150.     Endif
  151.     :LABEL002
  152.     STRING020 = Left(STRING023, 1)
  153.     STRING021 = Left(STRING024, 2)
  154.     STRING022 = STRING020 + STRING021
  155.     If (STRING020 == "A") INTEGER014 = 8408
  156.     If (STRING020 == "B") INTEGER014 = 9119
  157.     If (STRING020 == "C") INTEGER014 = 6619
  158.     If (STRING020 == "D") INTEGER014 = 4820
  159.     If (STRING020 == "E") INTEGER014 = 7325
  160.     If (STRING020 == "F") INTEGER014 = 2928
  161.     If (STRING020 == "G") INTEGER014 = 2031
  162.     If (STRING020 == "H") INTEGER014 = 1934
  163.     If (STRING020 == "I") INTEGER014 = 5534
  164.     If (STRING020 == "J") INTEGER014 = 4737
  165.     If (STRING020 == "K") INTEGER014 = 9242
  166.     If (STRING020 == "L") INTEGER014 = 3743
  167.     If (STRING020 == "M") INTEGER014 = 6546
  168.     If (STRING020 == "N") INTEGER014 = 8355
  169.     If (STRING020 == "O") INTEGER014 = 2859
  170.     If (STRING020 == "P") INTEGER014 = 4660
  171.     If (STRING020 == "Q") INTEGER014 = 7463
  172.     If (STRING020 == "R") INTEGER014 = 1164
  173.     If (STRING020 == "S") INTEGER014 = 6471
  174.     If (STRING020 == "T") INTEGER014 = 3973
  175.     If (STRING020 == "U") INTEGER014 = 5674
  176.     If (STRING020 == "V") INTEGER014 = 5782
  177.     If (STRING020 == "W") INTEGER014 = 3885
  178.     If (STRING020 == "X") INTEGER014 = 8287
  179.     If (STRING020 == "Y") INTEGER014 = 7591
  180.     If (STRING020 == "Z") INTEGER014 = 1096
  181.     INTEGER011 = S2I(STRING022, INTEGER010) + INTEGER013 + STRING026 + INTEGER014
  182.     INTEGER015 = S2I(STRING022, INTEGER010) + INTEGER013 + STRING027 + INTEGER014
  183.     If (INTEGER012 == INTEGER011) Goto LABEL003
  184.     If (INTEGER012 == INTEGER015) Goto LABEL003
  185.     Goto LABEL009
  186.     :LABEL003
  187.     STRING025 = "Y"
  188.     If (Len(INTEGER013) == 1) STRING016 = "000"
  189.     If (Len(INTEGER013) == 2) STRING016 = "00"
  190.     If (Len(INTEGER013) == 3) STRING016 = "0"
  191.     If (Len(INTEGER013) == 4) STRING016 = ""
  192.     STRING017 = INTEGER013
  193.     STRING018 = STRING016 + STRING017
  194.     STRING015 = Space(30 - Len(STRING014))
  195.     :LABEL004
  196.     STRING010 = "1.8 "
  197.     WrUNet PcbNode(), UN_Stat(), U_Name(), "In FileMenu", "", ""
  198.     FOpen 1, STRING019, 0, 0
  199.     FGet 1, STRING014
  200.     FGet 1, INTEGER013
  201.     FGet 1, INTEGER012
  202.     FGet 1, STRING012
  203.     FGet 1, STRING013
  204.     FClose 1
  205.     STRING009 = PPEPath() + String(CurConf()) + ".TBL"
  206.     If (!Exist(STRING009)) STRING009 = PPEPath() + STRING012
  207.     If (STRING025 == "N") Then
  208.         STRING011 = "@X0BFileMenu v" + STRING010 + " # " + "@X0F" + STRING028 + "@X0B" + " ■ " + STRING014
  209.     Endif
  210.     If (STRING025 == "Y") Then
  211.         STRING011 = "@X0BFileMenu v" + STRING010 + " #@X0F" + STRING018 + "@X0B ■ " + STRING014
  212.     Endif
  213.     FOpen 1, STRING009, 0, 0
  214.     FGet 1, STRING006
  215.     FGet 1, STRING005
  216.     FClose 1
  217.     Cls
  218.     DispFile STRING005, 4 + 2 + 1
  219.     STRING003 = ""
  220.     PrintLn STRING011
  221.     InputStr "@X0BWhich File Library @X0F#@X0B would you like to view, or @X0FS@X0B to Search", STRING003, 11, 3, "1234567890SsZzLl", Mask_Alpha() + Mask_Num()
  222.     If ((STRING003 == "S") || (STRING003 == "s")) Goto LABEL007
  223.     If ((STRING003 == "Z") || (STRING003 == "z")) Goto LABEL006
  224.     If ((STRING003 == "L") || (STRING003 == "l")) Goto LABEL006
  225.     INTEGER003 = STRING003
  226.     If (INTEGER003 == 0) Then
  227.         KbdStuff Chr(13)
  228.         End
  229.     Endif
  230.     FOpen 1, STRING009, 0, 0
  231.     FGet 1, STRING001
  232.     FGet 1, STRING001
  233.     FGet 1, STRING001
  234.     For INTEGER006 = 1 To INTEGER003
  235.         FGet 1, STRING008
  236.         FGet 1, INTEGER007
  237.         FGet 1, INTEGER008
  238.         FGet 1, STRING001
  239.     Next
  240.     FClose 1
  241.     INTEGER003 = 0
  242.     INTEGER001 = 0
  243.     INTEGER002 = 0
  244.     INTEGER004 = FileInf(STRING006, 4) / 96
  245.     INTEGER005 = INTEGER004 + 1
  246.     FOpen 1, STRING006, 0, 0
  247.     FDefIn 1
  248.     FSeek 1, 0, 0
  249.     For INTEGER006 = 1 To INTEGER008
  250.         INTEGER002 = INTEGER002 + 1
  251.         FDRead STRING007, 96
  252.         STRING007 = Mid(STRING007, 61, 35 - Len(INTEGER002))
  253.         If ((INTEGER002 >= INTEGER007) && (INTEGER002 <= INTEGER008)) Then
  254.             If (INTEGER001 == 0) Then
  255.                 PrintLn "@CLS@", STRING011, "  @X07Displaying: @X0D", STRING008
  256.                 PrintLn 
  257.             Endif
  258.             INTEGER001 = INTEGER001 + 1
  259.             Print "@X0F", Space(3 - Len(INTEGER002)), INTEGER002, "@X0B ", STRING007, Space(35 - Len(STRING007))
  260.             If (((((INTEGER001 == 2) || (INTEGER001 == 4)) || (INTEGER001 == 6)) || (INTEGER001 == 8)) || (INTEGER001 == 10)) Newline
  261.             If (((((INTEGER001 == 12) || (INTEGER001 == 14)) || (INTEGER001 == 16)) || (INTEGER001 == 18)) || (INTEGER001 == 20)) Newline
  262.             If (((((INTEGER001 == 22) || (INTEGER001 == 24)) || (INTEGER001 == 26)) || (INTEGER001 == 28)) || (INTEGER001 == 30)) Newline
  263.             If ((INTEGER001 == 30) && !(INTEGER002 == INTEGER008)) Then
  264.                 DefColor
  265.                 INTEGER001 = 0
  266.                 STRING004 = "Y"
  267.                 PrintLn 
  268.                 InputYN "View next screen (Enter for more)", STRING004, 14
  269.                 If (STRING004 == "N") Goto LABEL005
  270.                 Continue
  271.             Endif
  272.             If (INTEGER002 == INTEGER008) Then
  273.                 If (STRING013 == "Y") Print "@X0B", Space(3 - Len(INTEGER002)) , INTEGER005, "@X0F Recent Uploads"
  274.             Endif
  275.         Endif
  276.     Next
  277.     FClose 1
  278.     PrintLn 
  279.     End
  280.     :LABEL005
  281.     FClose 1
  282.     PrintLn 
  283.     End
  284.     :LABEL006
  285.     KbdStuff STRING003 + Chr(13)
  286.     End
  287.     :LABEL007
  288.     INTEGER009 = 0
  289.     STRING003 = ""
  290.     PrintLn 
  291.     InputStr "@X0BWhat FILE DIRECTORY TITLE text string to search for", STRING003, 11, 20, Mask_Alpha() + Mask_Ascii() + Mask_Num(), 2 + 8
  292.     If (STRING003 == "") End
  293.     Cls
  294.     FOpen 2, STRING009, 0, 0
  295.     FGet 2, STRING001
  296.     FGet 2, STRING001
  297.     FGet 2, STRING001
  298.     :LABEL008
  299.     INTEGER009 = INTEGER009 + 1
  300.     FGet 2, STRING008
  301.     FGet 2, INTEGER007
  302.     FGet 2, INTEGER008
  303.     FGet 2, STRING001
  304.     If (STRING008 == "") Then
  305.         FClose 2
  306.         PrintLn 
  307.         End
  308.     Endif
  309.     PrintLn "@X0CMenu ", INTEGER009, "  @X0D(", STRING008, ")@X07"
  310.     INTEGER002 = 0
  311.     INTEGER004 = FileInf(STRING006, 4) / 96
  312.     FOpen 1, STRING006, 0, 0
  313.     FDefIn 1
  314.     FSeek 1, 0, 0
  315.     For INTEGER006 = 1 To INTEGER004
  316.         INTEGER002 = INTEGER002 + 1
  317.         FDRead STRING007, 96
  318.         STRING007 = Mid(STRING007, 61, 35 - Len(INTEGER002))
  319.         If (((InStr(Upper(STRING007), STRING003) >= 1) && (INTEGER002 >= INTEGER007)) && (INTEGER002 <= INTEGER008)) Then
  320.             PrintLn "@X07Dir # @X0F", Space(3 - Len(INTEGER002)), INTEGER002, "@X0A  ", STRING007
  321.         Endif
  322.     Next
  323.     FClose 1
  324.     Goto LABEL008
  325.     :LABEL009
  326.     Cls
  327.     PrintLn 
  328.     PrintLn "Invalid Registration Code!"
  329.     Delay 182
  330.     End
  331.  
  332. ;------------------------------------------------------------------------------
  333. ;
  334. ; Usage report (before postprocessing)
  335. ;
  336. ; ■ Statements used :
  337. ;
  338. ;    9       End
  339. ;    3       Cls
  340. ;    38      Goto 
  341. ;    111     Let 
  342. ;    2       Print 
  343. ;    13      PrintLn 
  344. ;    80      If 
  345. ;    1       DispFile 
  346. ;    7       FOpen 
  347. ;    8       FClose 
  348. ;    24      FGet 
  349. ;    1       DefColor
  350. ;    12      Delete 
  351. ;    2       InputStr 
  352. ;    1       InputYN 
  353. ;    1       Delay 
  354. ;    3       Newline
  355. ;    1       Tokenize 
  356. ;    2       GetToken 
  357. ;    3       KbdStuff 
  358. ;    1       Bye
  359. ;    1       WrUNet 
  360. ;    2       FSeek 
  361. ;    2       FDefIn 
  362. ;    2       FDRead 
  363. ;
  364. ;
  365. ; ■ Functions used :
  366. ;
  367. ;    2       /
  368. ;    56      +
  369. ;    7       -
  370. ;    89      ==
  371. ;    3       <
  372. ;    5       <=
  373. ;    9       >=
  374. ;    21      !
  375. ;    10      &&
  376. ;    18      ||
  377. ;    11      Len(
  378. ;    1       Upper()
  379. ;    2       Mid()
  380. ;    2       Left()
  381. ;    5       Space()
  382. ;    4       Chr()
  383. ;    1       InStr()
  384. ;    1       U_Name()
  385. ;    1       Strip()
  386. ;    1       String()
  387. ;    2       Mask_Alpha()
  388. ;    2       Mask_Num()
  389. ;    1       Mask_Ascii()
  390. ;    1       CurConf()
  391. ;    12      PCBDat()
  392. ;    6       PPEPath()
  393. ;    1       PcbNode()
  394. ;    11      ReadLine()
  395. ;    1       UN_Stat()
  396. ;    2       Exist()
  397. ;    2       S2I()
  398. ;    1       TokenStr()
  399. ;    2       FileInf()
  400. ;    21      PPEName()
  401. ;
  402. ;------------------------------------------------------------------------------
  403. ;
  404. ; Analysis flags : d
  405. ;
  406. ; d - Access PCBOARD.DAT ■ 2
  407. ;     Program gets the full pathname to PCBOARD.DAT, this may be usefull
  408. ;     for many PPE so they can find various informations on the system
  409. ;     (system paths, max number of lines in messages, ...) but it may also
  410. ;     be a way to gather vital informations.
  411. ;     ■ Search for : PCBDAT()
  412. ;
  413. ;------------------------------------------------------------------------------
  414. ;
  415. ; Postprocessing report
  416. ;
  417. ;    3       For/Next
  418. ;    0       While/EndWhile
  419. ;    12      If/Then or If/Then/Else
  420. ;    1       Select Case
  421. ;
  422. ;------------------------------------------------------------------------------
  423. ;                 AEGiS Corp - Break the routines, code against the machines!
  424. ;------------------------------------------------------------------------------
  425.